package com.dupf.product.dao.model;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class ProductVariantExample implements Serializable {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private static final long serialVersionUID = 1L;

    public ProductVariantExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria implements Serializable {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTypeIsNull() {
            addCriterion("type is null");
            return (Criteria) this;
        }

        public Criteria andTypeIsNotNull() {
            addCriterion("type is not null");
            return (Criteria) this;
        }

        public Criteria andTypeEqualTo(Integer value) {
            addCriterion("type =", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotEqualTo(Integer value) {
            addCriterion("type <>", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThan(Integer value) {
            addCriterion("type >", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("type >=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThan(Integer value) {
            addCriterion("type <", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeLessThanOrEqualTo(Integer value) {
            addCriterion("type <=", value, "type");
            return (Criteria) this;
        }

        public Criteria andTypeIn(List<Integer> values) {
            addCriterion("type in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotIn(List<Integer> values) {
            addCriterion("type not in", values, "type");
            return (Criteria) this;
        }

        public Criteria andTypeBetween(Integer value1, Integer value2) {
            addCriterion("type between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("type not between", value1, value2, "type");
            return (Criteria) this;
        }

        public Criteria andOrgIdIsNull() {
            addCriterion("org_id is null");
            return (Criteria) this;
        }

        public Criteria andOrgIdIsNotNull() {
            addCriterion("org_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrgIdEqualTo(Integer value) {
            addCriterion("org_id =", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotEqualTo(Integer value) {
            addCriterion("org_id <>", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdGreaterThan(Integer value) {
            addCriterion("org_id >", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("org_id >=", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdLessThan(Integer value) {
            addCriterion("org_id <", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdLessThanOrEqualTo(Integer value) {
            addCriterion("org_id <=", value, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdIn(List<Integer> values) {
            addCriterion("org_id in", values, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotIn(List<Integer> values) {
            addCriterion("org_id not in", values, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdBetween(Integer value1, Integer value2) {
            addCriterion("org_id between", value1, value2, "orgId");
            return (Criteria) this;
        }

        public Criteria andOrgIdNotBetween(Integer value1, Integer value2) {
            addCriterion("org_id not between", value1, value2, "orgId");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andVariantZhIsNull() {
            addCriterion("variant_zh is null");
            return (Criteria) this;
        }

        public Criteria andVariantZhIsNotNull() {
            addCriterion("variant_zh is not null");
            return (Criteria) this;
        }

        public Criteria andVariantZhEqualTo(String value) {
            addCriterion("variant_zh =", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhNotEqualTo(String value) {
            addCriterion("variant_zh <>", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhGreaterThan(String value) {
            addCriterion("variant_zh >", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhGreaterThanOrEqualTo(String value) {
            addCriterion("variant_zh >=", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhLessThan(String value) {
            addCriterion("variant_zh <", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhLessThanOrEqualTo(String value) {
            addCriterion("variant_zh <=", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhLike(String value) {
            addCriterion("variant_zh like", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhNotLike(String value) {
            addCriterion("variant_zh not like", value, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhIn(List<String> values) {
            addCriterion("variant_zh in", values, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhNotIn(List<String> values) {
            addCriterion("variant_zh not in", values, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhBetween(String value1, String value2) {
            addCriterion("variant_zh between", value1, value2, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantZhNotBetween(String value1, String value2) {
            addCriterion("variant_zh not between", value1, value2, "variantZh");
            return (Criteria) this;
        }

        public Criteria andVariantEnIsNull() {
            addCriterion("variant_en is null");
            return (Criteria) this;
        }

        public Criteria andVariantEnIsNotNull() {
            addCriterion("variant_en is not null");
            return (Criteria) this;
        }

        public Criteria andVariantEnEqualTo(String value) {
            addCriterion("variant_en =", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnNotEqualTo(String value) {
            addCriterion("variant_en <>", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnGreaterThan(String value) {
            addCriterion("variant_en >", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnGreaterThanOrEqualTo(String value) {
            addCriterion("variant_en >=", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnLessThan(String value) {
            addCriterion("variant_en <", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnLessThanOrEqualTo(String value) {
            addCriterion("variant_en <=", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnLike(String value) {
            addCriterion("variant_en like", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnNotLike(String value) {
            addCriterion("variant_en not like", value, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnIn(List<String> values) {
            addCriterion("variant_en in", values, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnNotIn(List<String> values) {
            addCriterion("variant_en not in", values, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnBetween(String value1, String value2) {
            addCriterion("variant_en between", value1, value2, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantEnNotBetween(String value1, String value2) {
            addCriterion("variant_en not between", value1, value2, "variantEn");
            return (Criteria) this;
        }

        public Criteria andVariantFrIsNull() {
            addCriterion("variant_fr is null");
            return (Criteria) this;
        }

        public Criteria andVariantFrIsNotNull() {
            addCriterion("variant_fr is not null");
            return (Criteria) this;
        }

        public Criteria andVariantFrEqualTo(String value) {
            addCriterion("variant_fr =", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrNotEqualTo(String value) {
            addCriterion("variant_fr <>", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrGreaterThan(String value) {
            addCriterion("variant_fr >", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrGreaterThanOrEqualTo(String value) {
            addCriterion("variant_fr >=", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrLessThan(String value) {
            addCriterion("variant_fr <", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrLessThanOrEqualTo(String value) {
            addCriterion("variant_fr <=", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrLike(String value) {
            addCriterion("variant_fr like", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrNotLike(String value) {
            addCriterion("variant_fr not like", value, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrIn(List<String> values) {
            addCriterion("variant_fr in", values, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrNotIn(List<String> values) {
            addCriterion("variant_fr not in", values, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrBetween(String value1, String value2) {
            addCriterion("variant_fr between", value1, value2, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantFrNotBetween(String value1, String value2) {
            addCriterion("variant_fr not between", value1, value2, "variantFr");
            return (Criteria) this;
        }

        public Criteria andVariantDeIsNull() {
            addCriterion("variant_de is null");
            return (Criteria) this;
        }

        public Criteria andVariantDeIsNotNull() {
            addCriterion("variant_de is not null");
            return (Criteria) this;
        }

        public Criteria andVariantDeEqualTo(String value) {
            addCriterion("variant_de =", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeNotEqualTo(String value) {
            addCriterion("variant_de <>", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeGreaterThan(String value) {
            addCriterion("variant_de >", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeGreaterThanOrEqualTo(String value) {
            addCriterion("variant_de >=", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeLessThan(String value) {
            addCriterion("variant_de <", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeLessThanOrEqualTo(String value) {
            addCriterion("variant_de <=", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeLike(String value) {
            addCriterion("variant_de like", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeNotLike(String value) {
            addCriterion("variant_de not like", value, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeIn(List<String> values) {
            addCriterion("variant_de in", values, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeNotIn(List<String> values) {
            addCriterion("variant_de not in", values, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeBetween(String value1, String value2) {
            addCriterion("variant_de between", value1, value2, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantDeNotBetween(String value1, String value2) {
            addCriterion("variant_de not between", value1, value2, "variantDe");
            return (Criteria) this;
        }

        public Criteria andVariantEsIsNull() {
            addCriterion("variant_es is null");
            return (Criteria) this;
        }

        public Criteria andVariantEsIsNotNull() {
            addCriterion("variant_es is not null");
            return (Criteria) this;
        }

        public Criteria andVariantEsEqualTo(String value) {
            addCriterion("variant_es =", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsNotEqualTo(String value) {
            addCriterion("variant_es <>", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsGreaterThan(String value) {
            addCriterion("variant_es >", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsGreaterThanOrEqualTo(String value) {
            addCriterion("variant_es >=", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsLessThan(String value) {
            addCriterion("variant_es <", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsLessThanOrEqualTo(String value) {
            addCriterion("variant_es <=", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsLike(String value) {
            addCriterion("variant_es like", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsNotLike(String value) {
            addCriterion("variant_es not like", value, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsIn(List<String> values) {
            addCriterion("variant_es in", values, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsNotIn(List<String> values) {
            addCriterion("variant_es not in", values, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsBetween(String value1, String value2) {
            addCriterion("variant_es between", value1, value2, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantEsNotBetween(String value1, String value2) {
            addCriterion("variant_es not between", value1, value2, "variantEs");
            return (Criteria) this;
        }

        public Criteria andVariantJaIsNull() {
            addCriterion("variant_ja is null");
            return (Criteria) this;
        }

        public Criteria andVariantJaIsNotNull() {
            addCriterion("variant_ja is not null");
            return (Criteria) this;
        }

        public Criteria andVariantJaEqualTo(String value) {
            addCriterion("variant_ja =", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaNotEqualTo(String value) {
            addCriterion("variant_ja <>", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaGreaterThan(String value) {
            addCriterion("variant_ja >", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaGreaterThanOrEqualTo(String value) {
            addCriterion("variant_ja >=", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaLessThan(String value) {
            addCriterion("variant_ja <", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaLessThanOrEqualTo(String value) {
            addCriterion("variant_ja <=", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaLike(String value) {
            addCriterion("variant_ja like", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaNotLike(String value) {
            addCriterion("variant_ja not like", value, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaIn(List<String> values) {
            addCriterion("variant_ja in", values, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaNotIn(List<String> values) {
            addCriterion("variant_ja not in", values, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaBetween(String value1, String value2) {
            addCriterion("variant_ja between", value1, value2, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantJaNotBetween(String value1, String value2) {
            addCriterion("variant_ja not between", value1, value2, "variantJa");
            return (Criteria) this;
        }

        public Criteria andVariantPtIsNull() {
            addCriterion("variant_pt is null");
            return (Criteria) this;
        }

        public Criteria andVariantPtIsNotNull() {
            addCriterion("variant_pt is not null");
            return (Criteria) this;
        }

        public Criteria andVariantPtEqualTo(String value) {
            addCriterion("variant_pt =", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtNotEqualTo(String value) {
            addCriterion("variant_pt <>", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtGreaterThan(String value) {
            addCriterion("variant_pt >", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtGreaterThanOrEqualTo(String value) {
            addCriterion("variant_pt >=", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtLessThan(String value) {
            addCriterion("variant_pt <", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtLessThanOrEqualTo(String value) {
            addCriterion("variant_pt <=", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtLike(String value) {
            addCriterion("variant_pt like", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtNotLike(String value) {
            addCriterion("variant_pt not like", value, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtIn(List<String> values) {
            addCriterion("variant_pt in", values, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtNotIn(List<String> values) {
            addCriterion("variant_pt not in", values, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtBetween(String value1, String value2) {
            addCriterion("variant_pt between", value1, value2, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantPtNotBetween(String value1, String value2) {
            addCriterion("variant_pt not between", value1, value2, "variantPt");
            return (Criteria) this;
        }

        public Criteria andVariantItIsNull() {
            addCriterion("variant_it is null");
            return (Criteria) this;
        }

        public Criteria andVariantItIsNotNull() {
            addCriterion("variant_it is not null");
            return (Criteria) this;
        }

        public Criteria andVariantItEqualTo(String value) {
            addCriterion("variant_it =", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItNotEqualTo(String value) {
            addCriterion("variant_it <>", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItGreaterThan(String value) {
            addCriterion("variant_it >", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItGreaterThanOrEqualTo(String value) {
            addCriterion("variant_it >=", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItLessThan(String value) {
            addCriterion("variant_it <", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItLessThanOrEqualTo(String value) {
            addCriterion("variant_it <=", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItLike(String value) {
            addCriterion("variant_it like", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItNotLike(String value) {
            addCriterion("variant_it not like", value, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItIn(List<String> values) {
            addCriterion("variant_it in", values, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItNotIn(List<String> values) {
            addCriterion("variant_it not in", values, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItBetween(String value1, String value2) {
            addCriterion("variant_it between", value1, value2, "variantIt");
            return (Criteria) this;
        }

        public Criteria andVariantItNotBetween(String value1, String value2) {
            addCriterion("variant_it not between", value1, value2, "variantIt");
            return (Criteria) this;
        }

        public Criteria andOrdersIsNull() {
            addCriterion("orders is null");
            return (Criteria) this;
        }

        public Criteria andOrdersIsNotNull() {
            addCriterion("orders is not null");
            return (Criteria) this;
        }

        public Criteria andOrdersEqualTo(Integer value) {
            addCriterion("orders =", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotEqualTo(Integer value) {
            addCriterion("orders <>", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersGreaterThan(Integer value) {
            addCriterion("orders >", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersGreaterThanOrEqualTo(Integer value) {
            addCriterion("orders >=", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersLessThan(Integer value) {
            addCriterion("orders <", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersLessThanOrEqualTo(Integer value) {
            addCriterion("orders <=", value, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersIn(List<Integer> values) {
            addCriterion("orders in", values, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotIn(List<Integer> values) {
            addCriterion("orders not in", values, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersBetween(Integer value1, Integer value2) {
            addCriterion("orders between", value1, value2, "orders");
            return (Criteria) this;
        }

        public Criteria andOrdersNotBetween(Integer value1, Integer value2) {
            addCriterion("orders not between", value1, value2, "orders");
            return (Criteria) this;
        }

        public Criteria andCtimeIsNull() {
            addCriterion("ctime is null");
            return (Criteria) this;
        }

        public Criteria andCtimeIsNotNull() {
            addCriterion("ctime is not null");
            return (Criteria) this;
        }

        public Criteria andCtimeEqualTo(Long value) {
            addCriterion("ctime =", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotEqualTo(Long value) {
            addCriterion("ctime <>", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeGreaterThan(Long value) {
            addCriterion("ctime >", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeGreaterThanOrEqualTo(Long value) {
            addCriterion("ctime >=", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeLessThan(Long value) {
            addCriterion("ctime <", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeLessThanOrEqualTo(Long value) {
            addCriterion("ctime <=", value, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeIn(List<Long> values) {
            addCriterion("ctime in", values, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotIn(List<Long> values) {
            addCriterion("ctime not in", values, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeBetween(Long value1, Long value2) {
            addCriterion("ctime between", value1, value2, "ctime");
            return (Criteria) this;
        }

        public Criteria andCtimeNotBetween(Long value1, Long value2) {
            addCriterion("ctime not between", value1, value2, "ctime");
            return (Criteria) this;
        }

        public Criteria andMtimeIsNull() {
            addCriterion("mtime is null");
            return (Criteria) this;
        }

        public Criteria andMtimeIsNotNull() {
            addCriterion("mtime is not null");
            return (Criteria) this;
        }

        public Criteria andMtimeEqualTo(Long value) {
            addCriterion("mtime =", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeNotEqualTo(Long value) {
            addCriterion("mtime <>", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeGreaterThan(Long value) {
            addCriterion("mtime >", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeGreaterThanOrEqualTo(Long value) {
            addCriterion("mtime >=", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeLessThan(Long value) {
            addCriterion("mtime <", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeLessThanOrEqualTo(Long value) {
            addCriterion("mtime <=", value, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeIn(List<Long> values) {
            addCriterion("mtime in", values, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeNotIn(List<Long> values) {
            addCriterion("mtime not in", values, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeBetween(Long value1, Long value2) {
            addCriterion("mtime between", value1, value2, "mtime");
            return (Criteria) this;
        }

        public Criteria andMtimeNotBetween(Long value1, Long value2) {
            addCriterion("mtime not between", value1, value2, "mtime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria implements Serializable {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion implements Serializable {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}